package com.neuedu.corejava.ch10;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class SetClass {

	public static void main(String[] args) {

		//Set集合
		//Set集合时Collection集合的子接口，Set集合用于保存无序且唯一的数据
		Computer computer=new Computer("HP",5000);
		Computer computer2=new Computer("HW",5400);
		Computer computer3=new Computer("HW",5400);
		//集合的学习
		//学习有哪些集合，每个集合类实现了哪些数据结构
		//学习对集合的元素进行增删改查
		Set computerSet=new HashSet();
		computerSet.add(computer);
		computerSet.add(computer2);
		//注意：Set集合的唯一性一般指，同一条数据不能被保存两次，而不是指对象的内部的数据相同（同一对象）
		//如果需要根据元素的数据进行判断，则需要重写equals方法
		computerSet.add(computer3);
		
		//集合遍历
		//方法一：推荐使用迭代接口
		Iterator iterator= computerSet.iterator();
		while(iterator.hasNext()) {//hasNex判断集合汇中是否有下一条数据
			Object object=iterator.next();//取出条数据，并把指针下移
			Computer comp=(Computer)object;
			System.out.println(comp);
		}
		System.out.println("size "+computerSet.size());
		
		//删除
		computerSet.remove(computer2);
		System.out.println("size "+computerSet.size());
		iterator= computerSet.iterator();
		while(iterator.hasNext()) {//hasNex判断集合汇中是否有下一条数据
			Object object=iterator.next();//取出条数据，并把指针下移
			Computer comp=(Computer)object;
			//对集合中的数据（元素）进行修改
			comp.setBrand("dell");
			System.out.println(comp);
		}
		//查询数据是否在集合中
		if(computerSet.contains(computer)) {
			System.out.println("数据再集合中");
		}else {
			System.out.println("没有对应的数据");
		}
		
		iterator= computerSet.iterator();
		while(iterator.hasNext()) {//hasNex判断集合汇中是否有下一条数据
			Object object=iterator.next();//取出条数据，并把指针下移
			Computer comp=(Computer)object;
			System.out.println(comp);
		}
		

		
	}
	
}
